home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Svd Messageboard Arcive / ephemeric / data / MBPREP.ZIP / TRE2MSG.PL < prev    next >
Encoding:
Text File  |  1999-07-22  |  3.8 KB  |  123 lines

  1. $TREEN=shift;
  2. die "tree2msgbhtm.pl  tree_filename [-options]"
  3. ."\n -disable_missing \tcheck and disable missing posts/files"
  4. ."\n\t (will search for post-file.htm or .9 in current dir)"
  5. ."\n -prefix=some_const_prefix"
  6. ."\n -autoprefix \tput 1st 2 chars of the link as prefixdirectory"
  7. ."\n -perpage=posts_per_page (output files are xxxA.htm,xxxB.htm...)"
  8. ."\n\nreads filename.hdr and filename.tre and produces filename.htm"
  9. ."\nlinks are in form [const_prefix][xy/]xyzwhateverpost.htm"
  10. ."\n " if $TREEN eq '';
  11.  
  12. while ($_=shift) {
  13.  $disable_missing_links++ if /disable_miss/i;
  14.  $autoprefix++ if /autoprefix/i;
  15.  if (s/-prefix=//i)  { $prefix_dir=$_; }
  16.  if (s/-perpage=//i) { $perpage=$_; }
  17. }
  18.  
  19. $MB = $TREEN; $MB =~ s/\.tre$//i;
  20. print "<$TREEN ...\n";
  21.  
  22. $sep = $/;
  23. undef $/;
  24. $IN = "$MB.hdr"; open IN || die "$! $IN";
  25. $HDR = <IN>;
  26. close IN;
  27. $/ = $sep;
  28.  
  29. $HDR =~ s/[ \t]*\n+/\n/g;
  30. $epilogue = "</body></html>\n";
  31. #(@tm) = gmtime(); $tm[4]++; $tm[5]+=1900; # $tm[3].$tm[4].$tm[5]
  32.  
  33. $page=0;
  34.  
  35. $lvlprev=0;
  36. $IN = $TREEN; open IN || die "$! $IN";
  37. while (<IN>) { chop;
  38.    ($lvl,$mail,$name,$mssg,$subj,$date) = split( "\f");
  39.  
  40. print OUT "</ul>" x ($lvlprev-$lvl) if ($lvlprev>$lvl);
  41.  
  42. if (!$lvl) {            #main msg only
  43.    if ($perpage && $perpage <= $lines || !$page) {
  44.       if ($page) { print OUT $epilogue; close OUT; }
  45.       $OUT = $MB;
  46.       if ($perpage) {
  47.                 # be smArtAss and skip 1st chars if too long
  48.         $OUT = substr($MB, length($MB)-7);
  49.         $OUTprev = $OUT.sprintf("%c",64+$page) if $page;
  50.         $OUTnext = $OUT.sprintf("%c",66+$page);
  51.         $OUT .= sprintf("%c",65+$page); #ascii A
  52.        }
  53.       $OUT = ">$OUT.HTM"; print "... $OUT\n"; open(OUT) || die "$! $OUT";
  54.  
  55.       ++$page;
  56.       $lines=0;
  57.       print OUT $HDR;
  58.       print OUT "<center>rebuilt";
  59.       if ($perpage) {
  60.         print OUT "; <a href=\"$OUTprev.HTM\">prev</a>" if $page>1;
  61.         print OUT "; - page $page -";
  62.         print OUT "; <a href=\"$OUTnext.HTM\">next</a>";
  63.        }
  64.       print OUT "</center>\n";
  65.    }
  66.    $threads++;
  67. }
  68. $lines++; $totlines++;
  69. print OUT "<ul>"  x ($lvl-$lvlprev) if ($lvl>$lvlprev);
  70. print OUT "\n<hr size=0>" if !$lvl;              #main msg only
  71. ##print OUT "<TABLE WIDTH=100%><TR><TD>" if !$lvl;
  72. print OUT "<A HREF=\"mailto:$mail\">" if $mail ne '';
  73. #print OUT "<font size=\"-1\">$name</font>";   # face=\"arial,helvetica\"
  74. print OUT "$name";
  75. print OUT "</A>" if $mail ne '';
  76. $mssg =~ s/\.9$/\.HTM/;    #files named *.9 are NOT recognised as HTML. why?
  77. $mssg = substr($mssg,0,2).'/'.$mssg if $autoprefix;
  78. $mssg = $prefix_dir.$mssg;
  79.  
  80.   if ($disable_missing_links) {
  81.    $missing = $dup = 0;
  82.    $mssgroot =  $mssg;
  83.    $mssgroot =~ s/\.9$//;
  84.    $mssgroot =~ s/\.HTM$//;
  85.    @st1 = stat( "$mssgroot.HTM" );
  86.    if (!$st1[7]) {
  87.      @st1 = stat( "$mssgroot.9" );
  88.      if (!$st1[7]) {
  89. #      $mssgroot = "9$mssgroot";
  90.        print ": $mssgroot\n";
  91. #      $http = "http://www.insidetheweb.com/messageboard/mbs.cgi?acct=$MB&MyNum=$mssgroot&P=No&TL=$mssgroot";
  92. #      print "<A HREF=\"$http\"> $mssg </A><BR>\n";
  93.        $missing++;
  94.       }
  95.    }
  96.    $dup++ if $msgprev eq $mssgroot;
  97.    $msgprev = $mssgroot;
  98.   }
  99.  
  100. print OUT ": ";
  101. print OUT "dup: " if $dup;
  102. print OUT "OK: " if $disable_missing_links && !$missing;
  103. print OUT $missing ? "miss(9$mssgroot): " : "<A HREF=\"$mssg\">";
  104.  
  105. #print OUT "<FONT SIZE=\"-1\">" if $lvl;         #smaller font on submesssages
  106. print OUT $lvl ? "$subj" : "<B>$subj</B>";
  107. #print OUT "</FONT>" if $lvl;
  108. print OUT "</A>" if !$missing;
  109. #print OUT "<FONT SIZE=\"-2\"> $date</FONT>";
  110. print OUT " $date";
  111. print OUT "<BR>";
  112. ##print OUT "</TD></TR></TABLE>" if !$lvl;        #main msg only
  113. print OUT "\n";
  114.  
  115.    $lvlprev = $lvl;
  116. }
  117. close IN;
  118. print OUT $epilogue; close OUT;
  119.  
  120. print "$threads threads, $totlines posts\n";
  121.  
  122. #SvD 01'99
  123.